package com.yu.yupicture.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yu.yupicture.model.domain.dto.spaceAnalyze.*;
import com.yu.yupicture.model.domain.entry.Picture;
import com.yu.yupicture.model.domain.entry.Space;
import com.yu.yupicture.model.domain.vo.spaceAnalyze.*;
import com.yu.yupicture.model.domain.entry.User;

import java.util.List;

public interface SpaceAnalyze {


    /**
     * 获取空间使用情况查询条件
     */
    QueryWrapper<Picture> getSpaceQueryWrapper(SpaceAnalyzeRequest spaceAnalyzeRequest);

    /**
     * 权限校验
     */
    void checkSpaceAnalyze(SpaceAnalyzeRequest spaceAnalyzeRequest, User loginUser);

    /**
     * 空间资源使用情况分析
     */
    SpaceUsageAnalyzeResponse spaceUsageAnalyze(SpaceAnalyzeRequest spaceAnalyzeRequest, User loginUser);

    /**
     * 空间使用情况分析
     */
    List<SpaceCategoryAnalyzeResponse> spaceCategoryAnalyze(SpaceCategoryAnalyzeRequest spaceCategoryAnalyzeRequest, User loginUser);

    /**
     * 空间标签分析
     */

    List<SpaceTagAnalyzeResponse> spaceTagAnalyze(SpaceTagAnalyzeRequest spaceTagAnalyzeRequest, User loginUser);

    /**
     * 空间大小分析
     */
    List<SpaceSizeAnalyzeResponse> spaceSizeAnalyze(SpaceSizeAnalyzeRequest spaceSizeAnalyzeRequest, User loginUser);

    /**
     * 用户上传分析
     */
    List<SpaceUserAnalyzeResponse> userUploadAnalyze(SpaceUserAnalyzeRequest spaceAnalyzeRequest, User loginUser);

    /**
     * 空间使用排名请求
     */

    List<Space> spaceUsageRank(SpaceRankAnalyzeRequest spaceRankAnalyzeRequest, User loginUser);
}
